// SPDX-FileCopyrightText: © 2024 Tenstorrent AI ULC
//
// SPDX-License-Identifier: Apache-2.0

#pragma once

enum class SfpuType {
    tanh,
    hardtanh,
    gelu,
    exponential,
    exp_with_base,
    sigmoid,
    reciprocal,
    sqrt,
    lrelu,
    power,
    square,
    tanh_derivative,
    log,
    log_with_base,
    log1p,
    equal_zero,
    not_equal_zero,
    less_than_zero,
    greater_than_equal_zero,
    less_than_equal_zero,
    greater_than_zero,
    clamp,
    gelu_derivative,
    dropout,
    abs,
    abs_int32,
    sign,
    max,
    sine,
    cosine,
    acosh,
    cosh,
    sinh,
    tan,
    relu_max,
    relu_min,
    cast_fp32_to_fp16a,
    sigmoid_appx,
    gelu_appx,
    elu,
    min,
    exp2,
    heaviside,
    expm1,
    signbit,
    asin,
    acos,
    atan,
    asinh,
    atanh,
    erf,
    erfc,
    rsqrt,
    isfinite,
    isinf,
    isposinf,
    isneginf,
    isnan,
    logical_not_unary,
    erfinv,
    i0,
    i1,
    silu,
    mask,
    negative,
    quant_int32,
    requant_int32,
    dequant_int32,
    add_int32,
    add_uint32,
    add_uint16,
    add1,
    sub_int32,
    sub_uint16,
    mul_uint16,
    mul_int32,
    div_int32,
    div_int32_floor,
    div_int32_trunc,
    lt,
    gt,
    ge,
    le,
    topk_local_sort,
    topk_merge,
    topk_rebuild,
    unary_ne,
    unary_eq,
    unary_gt,
    unary_lt,
    unary_ge,
    unary_le,
    softplus,
    tiled_prod,
    bitwise_xor,
    bitwise_not,
    bitwise_and,
    bitwise_or,
    right_shift,
    floor,
    trunc,
    frac,
    left_shift,
    remainder,
    fmod,
    ceil,
    unused,
    reshuffle_rows,
    cumsum,
    fill,
    prelu,
    alt_complex_rotate90,
    round,
    cpy_values,
    unary_max,
    unary_min,
    gcd,
    lcm,
    softshrink,
    hardsigmoid,
    threshold,
    where,
    softsign,
    celu,
    max_pool_with_indices,
    selu,
    rpow,
    cbrt,  // cube root
    hardmish,
    reduce,
    add_top_row,
    rdiv,
};
